//创建Express应用
const app = require('express')()

//创建基于Express应用的webserver
const server = require('http').createServer(app)

//创建基于http server 的服务器端 Socket 套接字
const io = require('socket.io')(server)

//注册事件监听，阻塞，等待客户端连接
//当有客户连接时，执行事件处理程序
io.on('connection', (socket) => {
    //socket  代表客户端的连接    
    console.log('客户已上线')

    socket.on('disconnect', function() {
        console.log('他走了')
    })

    socket.on('onserver', (message) => {
        console.log('接收到客户端消息：' + message)
            //将接收到的消息转发给每个客户端
            //出发在客户端绑定的事件，以向客户端发消息
        io.emit('onclient', message)
    })
})

//监听端口
server.listen(3000, () => {
    console.log('Hellow Word')

})

//路由
app.get('/', (req, res, next) => {
    res.sendFile(__dirname + '/index.html')
})